package com.indexingsystem.system.service;

import java.util.List;

import com.indexingsystem.boss.Vo.AuthRoleVo;
import com.indexingsystem.boss.Vo.OperationsResultVo;
import com.indexingsystem.boss.Vo.OperationsVo;
import com.indexingsystem.boss.Vo.StatusList;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.Operations;

public interface IOperationsService {

	/**
	 * 通过权限id删除权限信息.
	 * 
	 * @param operationId
	 * @return
	 */
	int deleteByPrimaryKey(String operationId) throws Exception;

	/**
	 * 批量删除权限操作.
	 * 
	 * @param operationIdList
	 * @return
	 */
	int deleteOperationsByIdBatch(List<String> operationIdList) throws Exception;

	/**
	 * 新增权限.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(Operations record) throws Exception;

	/**
	 * 操作权限管理分页列表.
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<Operations> selectOperationsList(String queryCriteria, Integer pageNo, Integer pageSize);
	
	/**
	 * 权限列表带分页.
	 * @param queryCriteria
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<Operations> selectOperationsListByPage(String queryCriteria,Integer pageNo,Integer pageSize);
	
	/**
	 * 功能管理关联权限列表.
	 * 
	 * @param pageNumber
	 * @param pageSize
	 * @return
	 */
	PagedResult<OperationsResultVo> getOperationsOrFunctioneslist(String queryCriteria, Integer pageNumber,
			Integer pageSize);

	/**
	 * 通过权限id查询权限详情.
	 * 
	 * @param operationId
	 * @return
	 */
	Operations selectByPrimaryKey(String operationId);

	/**
	 * 修改权限操作.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(Operations record) throws Exception;

	/**
	 * 获取总记录数.
	 * 
	 * @return
	 */
	Integer getOperationsCount(String queryCriteria);

	/**
	 * 通过查询条件查询是否已存在.
	 * 
	 * @param queryCriteria
	 * @return
	 */
	List<Operations> getOperationsByQueryCriteria(OperationsVo operationsVo);

	/**
	 * 批量启用，禁用权限.
	 * 
	 * @param operationMap
	 * @return
	 */
	int batchUpdateOperationsWithList(List<StatusList> list);

	/**
	 * 根据用户ID获取权限的Set集合.
	 * 
	 * @param userId
	 * @return
	 */
	List<AuthRoleVo> findPermissionByUserId(String userId);

	/**
	 * 获取操作权限、功能列表/shrio授权使用.
	 * 
	 * @return
	 */
	List<String> queryOperationOrFunctionAll();
}